home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / pdcurs21.zip / PRIVATE.ZIP / _RMWIN.C < prev    next >
Text File  |  1992-11-21  |  2KB  |  68 lines

  1. #define        CURSES_LIBRARY  1
  2. #include <curses.h>
  3.  
  4. #ifdef REGISTERWINDOWS
  5. #ifndef        NDEBUG
  6. char *rcsid__rmwin = "$Header: c:/curses/private/RCS/_rmwin.c%v 2.0 1992/11/15 03:24:32 MH Rel $";
  7. #endif
  8.  
  9.  
  10.  
  11.  
  12. /*man-start*********************************************************************
  13.  
  14.   _rmwin()     - Unregister window
  15.  
  16.   PDCurses Description:
  17.        This routine removes a window from the current visible list
  18.        of windows.
  19.  
  20.   PDCurses Return Value:
  21.        This function returns OK on success and ERR on error.
  22.  
  23.   PDCurses Errors:
  24.        It is an error to call this function with a NULL window pointer.
  25.  
  26.   Portability:
  27.        PDCurses        int _rmwin( WINDOW* win );
  28.  
  29. **man-end**********************************************************************/
  30.  
  31. int    _rmwin(WINDOW *win)
  32. {
  33. extern void    (*fre)();
  34.  
  35.        WINDS  *w = _findwin(win);
  36.        WINDS  *next;
  37.        WINDS  *prev;
  38.  
  39.        if (w != (WINDS *)NULL)
  40.        {
  41.                if (_cursvar.visible == w)
  42.                {
  43.                        _cursvar.visible = w->next;
  44.                        (*fre)(w);
  45.                }
  46.                else
  47.                if (w->next == NULL)
  48.                {
  49.                        if (w->prev != NULL)
  50.                        {
  51.                                w->prev->next = NULL;
  52.                                (*fre)(w);
  53.                        }
  54.                }
  55.                else
  56.                {
  57.                        next = w->next;
  58.                        prev = w->prev;
  59.                        next->prev = prev;
  60.                        prev->next = next;
  61.                        (*fre)(w);
  62.                }
  63.                return( OK );
  64.        }
  65.        return( ERR );
  66. }
  67. #endif
  68.